package com.lzw.breezeNovel.webApp.vo.novel;

import com.lzw.breezeNovel.model.entity.pojo.BaseEntity;
import com.lzw.breezeNovel.model.entity.pojo.novel.Chapter;
import com.lzw.breezeNovel.model.entity.pojo.user.UserInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author 清风明月
 * @Package com.lzw.breezeNovel.webApp.vo
 * @date 2025/3/3
 * @description 小说的扩展类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuppressWarnings("all")
public class BookVo extends BaseEntity {

    @Schema(description = "小说id")
    private Long bookId;

    @Schema(description = "小说名称")
    private String bookName;

    @Schema(description = "小说作者")
    private String author;

    @Schema(description = "小说描述")
    private String des;

    @Schema(description = "小说字数")
    private Long count;

    @Schema(description = "小说封面")
    private String imgUrl;

    @Schema(description = "小说类型")
    private String type;

    @Schema(description = "总评分")
    private BigDecimal totalScore;

    @Schema(description = "阅读人数")
    private Long readBook;

    @Schema(description = "评分人数")
    private Long ratingCount;

    @Schema(description = "小说状态")
    private String status;

    @Schema(description = "章节列表")
    private List<ChapterVo> chapters;

    @Schema(description = "最新章节")
    private Chapter newChapter;

    @Schema(description = "是否加入书架")
    private Boolean addedToBookshelf;

    @Schema(description = "是否评分")
    private Boolean rated;

    @Schema(description = "评分")
    private BigDecimal score;

    @Schema(description = "判断是否加入书架了")
    private Boolean isAddShelf;

    @Schema(description = "小说的作者")
    private UserInfo userInfo;
}
